/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.imsx.controller;

import com.imsx.controller.util.ActivacionUsuario;
import com.imsx.model.Cliente;
import com.imsx.viss.DAOUsuario;
import java.io.IOException;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;
import java.util.concurrent.ExecutionException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpSession;

/**
 *
 * @author pablito
 */
@Named(value = "clienteController")
@SessionScoped
public class ClienteController implements Serializable {

    /**
     * Creates a new instance of ClienteController
     */
    private boolean logeado = false;
    private Cliente cliente;
    private String clienteId;
    private String nombre = "";
    private String apellido = "";
    private String correo = "";
    private String telefono = "";
    private String contrasena = "";
    private String direccion = "";

    public ClienteController() {
        setCliente(new Cliente());
    }

    public void verificar() {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        if (getContrasena().equals("") && getCorreo().equals("")) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Incorrecto:", "LLene Datos"));
        } else {
            Cliente c = DAOUsuario.getInstancia().Validarlogueo(getContrasena(), getCorreo());
            if (c != null) {
                try {
                    ActivacionUsuario.setUsuario("cliente", c);
                    ActivacionUsuario.redireccionaPagina("hola.html");
                } catch (Exception ex) {
                    Logger.getLogger(ClienteController.class.getName()).log(Level.SEVERE, null, ex);
                }
            } else {
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Incorrecto:", "Usuario No Encontrado"));
            }

        }

    }

    public void registrar() {

        if (getNombre().equals("") && getContrasena().equals("") && getCorreo().equals("")) {
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Incorrecto:", "No se a llenado los Campos Requeridos"));
        } else {

            try {
                getCliente().setNombre(nombre);
                getCliente().setContrasena(contrasena);
                getCliente().setCorreo(correo);
                getCliente().setTelefono(telefono);
                getCliente().setDireccion(direccion);
                //DAOUsuario.getInstancia().Registrar(cliente);
                FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Correcto:", "El registro fue realizado correctamente"));

            } catch (Exception ex) {
                Logger.getLogger(ClienteController.class.getName()).log(Level.SEVERE, null, ex);
            }

        }
    }

    public void login(ActionEvent event) {
        System.out.println("hola");
        if (getContrasena().equals(" ") && getCorreo().equals(" ")) {

        }
        // DAOUsuario.getInstancia().Validarlogueo(getContrasena(), getCorreo());

    }

    /**
     * @return the logeado
     */
    public boolean isLogeado() {
        return logeado;
    }

    /**
     * @param logeado the logeado to set
     */
    public void setLogeado(boolean logeado) {
        this.logeado = logeado;
    }

    /**
     * @return the cliente
     */
    public Cliente getCliente() {
        return cliente;
    }

    /**
     * @param cliente the cliente to set
     */
    public void setCliente(Cliente cliente) {
        this.cliente = cliente;
    }

    /**
     * @return the clienteId
     */
    public String getClienteId() {
        return clienteId;
    }

    /**
     * @param clienteId the clienteId to set
     */
    public void setClienteId(String clienteId) {
        this.clienteId = clienteId;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the apellido
     */
    public String getApellido() {
        return apellido;
    }

    /**
     * @param apellido the apellido to set
     */
    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    /**
     * @return the correo
     */
    public String getCorreo() {
        return correo;
    }

    /**
     * @param correo the correo to set
     */
    public void setCorreo(String correo) {
        this.correo = correo;
    }

    /**
     * @return the telefono
     */
    public String getTelefono() {
        return telefono;
    }

    /**
     * @param telefono the telefono to set
     */
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    /**
     * @return the contrasena
     */
    public String getContrasena() {
        return contrasena;
    }

    /**
     * @param contrasena the contrasena to set
     */
    public void setContrasena(String contrasena) {
        this.contrasena = contrasena;
    }

    /**
     * @return the direccion
     */
    public String getDireccion() {
        return direccion;
    }

    /**
     * @param direccion the direccion to set
     */
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

}
